package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.pojo.Result;
import com.itheima.pojo.Student;
import com.itheima.service.StudentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDate;
import java.util.List;


@Slf4j
@RestController
@RequestMapping("/student")
public class StudentController {
    /*新增学生（2分）
批量删除学生（5分）
修改学生（3分）
带条件的分页查询（5分）
① 输入 学员姓名 进行搜索，支持模糊查询。
② 选择 学员最高学历 进行搜索， 精确查询。
③ 选择 学员所属班级 进行查询，精确查询。
④ 输入 学号 进行查询 ， 支持模糊查询。
学员违纪处理（5）
① 每一次违纪处理 , 就需要将违纪次数往上累加一次 。
② 每一次违纪处理 , 需要将违纪分数累加。*/
@Autowired
private StudentService studentService;

    /**
     * 新增学生
     * @param student
     * @return
     */
    @PostMapping
    public Result save(@RequestBody Student student){
        log.info("新增学生, emp: {}", student);
        studentService.save(student);
        return Result.success();
    }

    /*批量删除学生（5分）*/

    @DeleteMapping("/{ids}")
    public Result delete(@PathVariable List<Integer> ids){
        log.info("批量删除操作, ids:{}",ids);
        studentService.delete(ids);
        return Result.success();
    }
    /*修改学生（3分）*/

    @PutMapping
    public Result update(@RequestBody Student student,@RequestParam(name="studentClass.id") Integer classId){
       student.setClassId(classId);
        log.info("更新员工信息 : {}", student);
        studentService.update(student);
        return Result.success();
    }
    /**带条件的分页查询（5分）
① 输入 学员姓名 进行搜索，支持模糊查询。
② 选择 学员最高学历 进行搜索， 精确查询。
③ 选择 学员所属班级 进行查询，精确查询。
④ 输入 学号 进行查询 ， 支持模糊查询。*/
    @GetMapping
    public Result page(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer pageSize,
                       String name,Integer educationId,String number,Integer classId){
        log.info("分页查询, 参数: {},{},{},{},{},{}",page,pageSize,name,educationId,number,classId);
        //调用service分页查询
        PageBean pageBean = studentService.page(page,pageSize,name,educationId,number,classId);
        return Result.success(pageBean);
    }

    /*学员违纪处理（5）
            ① 每一次违纪处理 , 就需要将违纪次数往上累加一次 。

            ② 每一次违纪处理 , 需要将违纪分数累加。*/
    @PutMapping
    public Result dealDiscipline(@RequestBody Student student){
        studentService.dealDiscipline(student);


        return Result.success();
    }
}
